package com.itany.service;

import com.github.pagehelper.PageInfo;
import com.itany.exception.ManagerUserExistsException;
import com.itany.exception.RequestParamsException;
import com.itany.exception.WrongUsernameOrPasswordException;
import com.itany.pojo.ManagerUser;
import com.itany.pojo.Permission;
import com.itany.vo.Menu;

import java.util.List;

public interface ManagerUserService {

    /**
     * 添加管理员
     * @param username 角色名称
     * @param password 管理员密码
     * @param roles 管理员角色
     */
    void addManagerUser(String username,String password,String supplierId, Integer[] roles) throws RequestParamsException, ManagerUserExistsException;

    /**
     * 修改管理员
     * @param id 角色id
     * @param username 角色名称
     * @param password 管理员密码
     * @param roles 管理员角色
     */
    void modifyManagerUser(String id,String username,String password,String supplierId, Integer[] roles) throws RequestParamsException, ManagerUserExistsException;


    /**
     * 查找所有管理员
     * @param page 页数
     * @param rows 每页数据条数
     * @return
     */
    PageInfo<ManagerUser> findAll(Integer page, Integer rows,String managernameKey) throws RequestParamsException;

    /**
     * 管理员后台登录
     * @param username 用户名
     * @param password 密码
     * @return
     */
    ManagerUser login(String username,String password) throws RequestParamsException, WrongUsernameOrPasswordException;


    /**
     * 动态生成导航菜单
     * @param managerUserId
     * @return
     */
    List<Menu> generateMenus(String managerUserId) throws RequestParamsException;


    /**
     * 修改密码
     * @param newpass 新密码
     * @param managerUserId 登录管理员id
     */
    void modifyPassword(String newpass,String managerUserId) throws RequestParamsException;
}
